package com.ks.common.annotation;

import java.lang.annotation.*;

/**
 * @author KingAusten
 * 2022/08/09 10:44:37
 * 自定义防重复提交
 * @version 1.0.0
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RepeatSubmit{

    /**
     * 默认防重提交，是方法参数
     *
     * @return
     */
    Type limitType() default Type.PARAM;

    /**
     * 加锁过期时间，默认是5秒
     *
     * @return
     */
    long lockTime() default 5;


    /**
     * 防重提交，支持两种，一个是方法参数，一个是令牌
     */
    enum Type{
        /**
         * 参数
         */
        PARAM,
        /**
         * 令牌
         */
        TOKEN
    }

}
